Television broadcast systems use various methods and systems to distribute television content. Television signals can be distributed via cable, via satellite, or via over-the-air delivery. Interactive television systems permit two-way communication between the television service provider and the television viewer. Servers or similar systems at the head end distribute content to multiple set top boxes (or other devices) used by individuals. Interactive television systems allow individuals to communicate with the head end equipment. For example, individuals may request specific content, such as a movie or data listing. Additionally, individuals may respond to questions or provide other information to the equipment at the head end.
In some television systems, a data carousel is used to distribute data in a repetitive manner. An example data carousel generator uses data files organized in a file hierarchy of a storage mechanism to produce data modules encapsulated and packetized in MPEG-2 Transport Stream packets that can be transmitted (or played) in a cyclical manner. Typically, data files in a data carousel are multiplexed with other video, audio, or auxiliary data in a transport stream, such as an MPEG-2 (Moving Pictures Experts Group) video elementary stream. The data carousel protocol (or the related object carousel protocol) is defined in Part 6 of the MPEG-2 (Digital Storage Media Command and Control—DSM-CC) Standard, also referred as Standard ISO/IEC 13818-6. The data files may be transmitted, for example, using one or more digital television channels (also referred to as Virtual Channel television channels).
The quantity and arrangement of data files in the data carousel determines the frequency with which particular data files are transmitted and the delay between successive transmissions of the same data file. In systems that use a data carousel, it is desirable to optimize the latency between a user request for a data file and the user receiving the requested data file from the data carousel. In a static system in which the data files in the carousel don't change (or change infrequently and independently of user requests), managing this latency is relatively simple. However, in a dynamic environment in which new data files are being added to the carousel and existing data files are being removed from the carousel, managing the latency in the system is more difficult.
Accordingly, there is a need for an improved system and method to manage the operation of a dynamic data carousel.